#include "botellawidget.h"

BotellaWidget::BotellaWidget(Botella *botella_,QWidget *parent) :
    QWidget(parent),botella(botella_)
{
    QVBoxLayout *main_layout = new QVBoxLayout;
    this->setLayout(main_layout);


    QHBoxLayout *radio_cuello_layout = new QHBoxLayout;
    QLabel *radio_cuello_label = new QLabel("Radio Cuello");
    radio_cuello = new QSlider(Qt::Horizontal);
    radio_cuello->setMinimum(50);
    radio_cuello->setMaximum(200);
    radio_cuello->setValue(100);

    radio_cuello_layout->addWidget(radio_cuello_label);
    radio_cuello_layout->addWidget(radio_cuello);

    main_layout->addLayout(radio_cuello_layout);

    QHBoxLayout *altura_cuello1_layout = new QHBoxLayout;
    QLabel *altura_cuello1_label = new QLabel("Altura Cuello 1");
    altura_cuello1 = new QSlider(Qt::Horizontal);
    altura_cuello1->setMinimum(-12);
    altura_cuello1->setMaximum(12);
    altura_cuello1->setValue(0);

    altura_cuello1_layout->addWidget(altura_cuello1_label);
    altura_cuello1_layout->addWidget(altura_cuello1);

    main_layout->addLayout(altura_cuello1_layout);

    QHBoxLayout *altura_cuello2_layout = new QHBoxLayout;
    QLabel *altura_cuello2_label = new QLabel("Altura Cuello 2");
    altura_cuello2 = new QSlider(Qt::Horizontal);
    altura_cuello2->setMinimum(-25);
    altura_cuello2->setMaximum(25);
    altura_cuello2->setValue(0);

    altura_cuello2_layout->addWidget(altura_cuello2_label);
    altura_cuello2_layout->addWidget(altura_cuello2);

    main_layout->addLayout(altura_cuello2_layout);

    QHBoxLayout *altura_cuerpo_layout = new QHBoxLayout;
    QLabel *altura_cuerpo_label = new QLabel("Altura Cuerpo");
    altura_cuerpo = new QSlider(Qt::Horizontal);
    altura_cuerpo->setMinimum(-75);
    altura_cuerpo->setMaximum(75);
    altura_cuerpo->setValue(0);

    altura_cuerpo_layout->addWidget(altura_cuerpo_label);
    altura_cuerpo_layout->addWidget(altura_cuerpo);

    main_layout->addLayout(altura_cuerpo_layout);


    QPushButton *save_button = new QPushButton("Guardar");
    main_layout->addWidget(save_button);

    connect(radio_cuello,SIGNAL(valueChanged(int)),
            this,SLOT(SetRadioCuello(int)));
    connect(altura_cuello1,SIGNAL(valueChanged(int)),
            this,SLOT(SetAlturaCuello1(int)));
    connect(altura_cuello2,SIGNAL(valueChanged(int)),
            this,SLOT(SetAlturaCuello2(int)));
    connect(altura_cuerpo,SIGNAL(valueChanged(int)),
            this,SLOT(SetAlturaCuerpo(int)));


    connect(save_button,SIGNAL(clicked()),this,SLOT(SaveDialog()));
}

void BotellaWidget::SetRadioCuello(int val){
    botella->SetRadioCuello(val/100.0);
    botella->Update();
    emit Updated();
}

void BotellaWidget::SetAlturaCuello1(int val){
    botella->SetAlturaCuello1(val/100.0);
    botella->Update();
    emit Updated();
}

void BotellaWidget::SetAlturaCuello2(int val){
    botella->SetAlturaCuello2(val/100.0);
    botella->Update();
    emit Updated();
}

void BotellaWidget::SetAlturaCuerpo(int val){
    botella->SetAlturaCuerpo(val/100.0);
    botella->Update();
    emit Updated();
}

void BotellaWidget::SaveDialog(){
    QString fileName = QFileDialog::getSaveFileName(this,tr("Save object..."),QString(),tr("BRep (*.brp)"));
    if (fileName.isEmpty())
        return;

    if(!botella->Save(fileName)){
        QErrorMessage *error = new QErrorMessage(this);
        error->showMessage("Error");
    }
}
